﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using SlideShow.Models;

namespace SlideShow.Controllers
{
    public class CursosController : Controller
    {

        CursosPortal.CursosClient cursoPortal = new CursosPortal.CursosClient();

        private MdlCursos CursoServ_to_Curso(CursosPortal.Curso curso)
        {
            MdlCursos Curso = new MdlCursos { id=curso.id,nombre=curso.nombre,tipo=curso.tipo,responsable=curso.responsable,duracionHoras=curso.duracionHoras,preRequisito=curso.preRequisito};
            return Curso;
        }

        private List<MdlCursos> ListarCurso()
        {

        //     List<LayerTele> listaTele = LayerTeleDAO.ListarTodos().ToList();

        //    List<CapasComercio.Layers> listaComer = capacomer.listarLayers().ToList();
        //    List<LayerTele> listaTelefin = new List<LayerTele>();

        //    foreach (Telematica.Dominio.LayerTele element in listaTele)
        //    {
        //        listaTelefin.Add(element);
        //    }

        //    foreach (CapasComercio.Layers element in listaComer)
        //    {
        //        int b = 0;

        //     foreach (Telematica.Dominio.LayerTele elemento in listaTelefin)
                                                                       
        //              if (element.Id == elemento.Id)
        //               {
        //                   b = b + 1; 
        //                   break;
        //               }
        //               else
        //               {
        //                   continue;
        //               }
        //         if (b == 0)
        //         {
        //             listaTelefin.Add(Comercio_To_Tele(element));
        //         }
        //    }

        //    return listaTelefin;
   
        //}




            List<CursosPortal.Curso> lista_Curso = cursoPortal.listarCursos().ToList();

            List<MdlCursos> Lista_retorna = new List<MdlCursos>();
            foreach (CursosPortal.Curso element in lista_Curso)
            {
                Lista_retorna.Add(CursoServ_to_Curso(element));
            }
            return Lista_retorna; 
        }

        // muestra el listado

        public ActionResult Index()
        {
            List<MdlCursos> model = ListarCurso();
            return View(model);
        }



        private MdlCursos ObtenerCursos(int id)
        {
            return CursoServ_to_Curso(cursoPortal.obtenerCurso(id));
        }


        //Muestra página con los datos de un usuario

        public ActionResult Details(int id)
        {
            MdlCursos model = ObtenerCursos(id);
            return View(model);
        }

    
        // POST: /Cursos/Create

        [HttpPost]
        public ActionResult Create(FormCollection collection)
        {
            try
            {

                cursoPortal.crearCurso((string)collection["nombre"], (string)collection["tipo"], (string)collection["responsable"], (int)Convert.ToInt32(collection["duracionHoras"]), (string)collection["preRequisito"]);
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        public ActionResult Create()
        {
            return View();
        } 
        
       
        //
        // POST: /Cursos/Edit/5

        [HttpPost]
        public ActionResult Edit(int id, FormCollection collection)
        {
            try
            {
                MdlCursos oCurso = ObtenerCursos(id);
                oCurso.nombre = collection["nombre"];
                oCurso.tipo = collection["tipo"];
                oCurso.responsable = collection["responsable"];
                oCurso.duracionHoras = Convert.ToInt32(collection["duracionHoras"]);
                oCurso.responsable = collection["duracionHoras"];
                cursoPortal.modificarCurso(oCurso.id, oCurso.nombre, oCurso.tipo, oCurso.responsable, oCurso.duracionHoras, oCurso.preRequisito);
                return RedirectToAction("Index");  
            }
            catch
            {
                return View();
            }
        }


        //
        // GET: /Cursos/Edit/5

        public ActionResult Edit(int id)
        {
            MdlCursos model = ObtenerCursos(id);
            return View(model);
        }


       

        //
        // POST: /Cursos/Delete/5

        [HttpPost]
        public ActionResult Delete(int id, FormCollection collection)
        {
            try
            {
                cursoPortal.eliminarCurso(id);
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        //
        // GET: /Cursos/Delete/5

        public ActionResult Delete(int id)
        {
            MdlCursos curso = new MdlCursos();
            curso = ObtenerCursos(id);

            return View(curso);
        }
    }
}
